﻿using Microsoft.VisualStudio.Shell;
using System;
using System.ComponentModel.Design;
using System.Runtime.InteropServices;

namespace Sharp.UnusedReferences
{
    /// <summary>
    /// This class implements the tool window exposed by this package and hosts a user control.
    ///
    /// In Visual Studio tool windows are composed of a frame (implemented by the shell) and a pane, 
    /// usually implemented by the package implementer.
    ///
    /// This class derives from the ToolWindowPane class provided from the MPF in order to use its 
    /// implementation of the IVsUIElementPane interface.
    /// </summary>
    [Guid("DC451840-182C-4178-B6B4-703AADCCEBB4")]
    public class ToolWindowSolutionTree : ToolWindowPane
    {
		//UserControlSolutionTree InnerControl = new UserControlSolutionTree();
		/// <summary>
        /// Standard constructor for the tool window.
        /// </summary>
        public ToolWindowSolutionTree() : base()
        {
            // Set the window title reading it from the resources.
            Caption = Resources.ToolWindowTitle;
            // Set the image that will appear on the tab of the window frame
            // when docked with an other window
            // The resource ID correspond to the one defined in the resx file
            // while the Index is the offset in the bitmap strip. Each image in
            // the strip being 16x16.
            BitmapResourceID = 303;
			BitmapIndex = 0;

            // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable,
            // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on 
            // the object returned by the Content property.
			base.Content = new UserControlSolutionTree();
			ToolBar = new CommandID(GuidList.guidUnusedReferencesCmdSet, PkgCmdIDList.CommandIDToolBar);
		}
		//public override IWin32Window Window
		//{
		//    get
		//    {
		//        return InnerControl;
		//    }
		//}
		internal UserControlSolutionTree SolutionTree
		{
			get
			{
				return (UserControlSolutionTree)Content;
			}
		}
	}
}
